package com.xuedongzhilian.service;

import com.xuedongzhilian.dto.ExamPaperDTO;
import com.xuedongzhilian.entity.ExamPaper;

import java.util.List;

/**
 * <p>
 * 试卷练习服务类
 * </p>
 *
 * @author 学动智联团队
 * @since 2025-10-14
 */
public interface IExamPaperService {

    /**
     * 创建试卷练习
     * @param examPaperDTO 试卷练习DTO
     * @return 是否创建成功
     */
    boolean createExamPaper(ExamPaperDTO examPaperDTO);

    /**
     * 获取用户的试卷练习列表
     * @param userId 用户ID
     * @return 试卷练习列表
     */
    List<ExamPaperDTO> getExamPapersByUserId(Long userId);

    /**
     * 获取试卷练习详情
     * @param paperId 试卷ID
     * @param userId 用户ID
     * @return 试卷练习详情
     */
    ExamPaperDTO getExamPaperDetail(Long paperId, Long userId);

    /**
     * 更新试卷练习
     * @param examPaperDTO 试卷练习DTO
     * @return 是否更新成功
     */
    boolean updateExamPaper(ExamPaperDTO examPaperDTO);

    /**
     * 删除试卷练习
     * @param paperId 试卷ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteExamPaper(Long paperId, Long userId);

    /**
     * 开始试卷练习
     * @param paperId 试卷ID
     * @param userId 用户ID
     * @return 是否开始成功
     */
    boolean startExamPaper(Long paperId, Long userId);

    /**
     * 完成试卷练习
     * @param paperId 试卷ID
     * @param userId 用户ID
     * @param actualScore 实际得分
     * @param usedTime 用时（秒）
     * @return 是否完成成功
     */
    boolean completeExamPaper(Long paperId, Long userId, Integer actualScore, Integer usedTime);
}